home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / txf / src / txfmain.c < prev    next >
C/C++ Source or Header  |  1994-09-17  |  2KB  |  125 lines

  1. /*====================================================================
  2.  *
  3.  * TXF mail module
  4.  *
  5.  *====================================================================
  6.  *                                   copyright(C) 1992-1994 T.Nakatani
  7.  *====================================================================
  8.  */
  9. #define MAIN 1
  10. #include "txf.h"
  11.  
  12. #define MAX_ARGV    32
  13. #define VERSION        "Ver2.11"
  14.  
  15. char far *fargv[MAX_ARGV];
  16.  
  17. void init(char *name)
  18. {
  19.     char *path;
  20.  
  21.     path = ((strlen(name) > 26) ? jstrrchr(name,'\\')+1 : name);
  22.     fprintf(stderr,"%s " VERSION " copyright (c) 1992-1994 T.Nakatani\n", path);
  23.  
  24.     tmpinfile = -1;
  25.     init_allswitch();
  26.     basedir=name;
  27.     kl = NULL;
  28.     kf = NULL;
  29.     kq = NULL;
  30. }
  31.  
  32.  
  33. void setdefault()
  34. {
  35. /*
  36.     if (right > 0) right --;
  37.     if (maxc > 0) maxc --;
  38. */
  39.     if (cent > 0) {
  40.         if (left < 0) left = (maxc - cent) / 2;
  41.         if (right < 0) right = (maxc + cent) / 2;
  42.     }
  43.     if (maxc > 2000) {
  44.         maxc = 2000;
  45.         if (viewmode > 1) {
  46.             fprintf(stderr,"Warning:Too long right limit. limit is resetting 2000.\n");
  47.         }
  48.     }
  49.     if (left < 0) left = 0;
  50.     if ((right < 0) || (right > maxc)) right = maxc - 4;
  51. #ifdef DEBUG
  52.     if (viewmode > 2)
  53.         fprintf(stderr,
  54.         "\x1b[31mWarning:This is debug mode for nobody. (mode=%d)\x1b[0m\n",
  55.         viewmode);
  56. #endif
  57.     if (kl == NULL) {
  58.         kl = calloc(1, 1);
  59.     }
  60.     if (kf == NULL) {
  61.         kf = calloc(1, 1);
  62.         
  63.     }
  64.     if (kq == NULL) {
  65.         kq = calloc(1, 1);
  66.     }
  67.     if ((kl == NULL) || (kf == NULL) || (kq == NULL)) {
  68.         errexit("Heap Error at(setdefault)");
  69.     }
  70. }
  71.  
  72. void txf()
  73. {
  74.     if (removeeofflg) removeeof();
  75.     if (exflg) exchangedriver();
  76.  
  77.     if (format) {
  78.         if (base == 0) setleft0();    /*    自動検索    */
  79.         if (base > 0) setleft();
  80.         txform();
  81.     }
  82.  
  83.     input_to_output();
  84. }
  85.  
  86. void endoftxf()
  87. {
  88.     remove(tfile[0]);
  89.     remove(tfile[1]);
  90.  
  91.     if (*outputfile == NUL) {
  92.         fprintf(stderr, "\n");
  93.     }
  94. }
  95.  
  96. int main(int argc, char **argv)
  97. {
  98.     int i;
  99.     init(argv[0]);
  100.     setdefault();
  101.     if (tfile[0][0] == NUL) gettmpfile();
  102.     mktfilename();
  103.  
  104.     command_option = 1;
  105.     if (argc > MAX_ARGV) {
  106.         errexit("too many command line arguments.");
  107.     }
  108.     else {
  109.         for (i = 0; i < argc - 1; i++) {
  110.             fargv[i] = argv[i+1];
  111.         }
  112.         fargv[i] = NULL;
  113.     }
  114.     swchk(argc - 1, fargv);
  115.     command_option = 0;
  116.     if (read_def_flg) read_def(argv[0]);
  117.     setdefault();
  118.  
  119.     while (wcchk()) txf();
  120.  
  121.     endoftxf();
  122.     return (0);
  123. }
  124.  
  125.